cups: Fix gettext usage
authorBastien Nocera <hadess@hadess.net>
Fri, 15 Apr 2016 10:13:34 +0000 (12:13 +0200)
committerBastien Nocera <hadess@hadess.net>
Sat, 16 Apr 2016 16:43:12 +0000 (18:43 +0200)
The previous patches didn't mark some strings as to be translated, and
tried to translate strings with a variable part already inside the
string, which isn't going to work.

Mark the strings as translatable with context, and also make sure to
translate static strings when getting them out of their structure.

https://bugzilla.gnome.org/show_bug.cgi?id=764585

modules/printbackends/cups/gtkprintbackendcups.c

index 661037b227516e0dcbcec7d744f397abbdc06211..9fd77d3a569c3f5cb4acd8bc74dfe77007206bf9 100644 (file)
@@ -4409,40 +4409,37 @@ static const struct {
  * Handles "format not a string literal" error
  * https://mail.gnome.org/archives/desktop-devel-list/2016-March/msg00075.html
  */
-static const gchar *
+static gchar *
 get_ipp_choice_translation_string (gint  index,
                                   guint i)
 {
-  const gchar *translation;
-  gchar       *string;
+  gchar *translation;
 
   if (i < G_N_ELEMENTS (ipp_choice_translations))
-    translation = ipp_choice_translations[i].translation;
+    translation = g_strdup (_(ipp_choice_translations[i].translation));
   else
     {
       switch (i)
         {
           case 14:
             /* Translators: Output stacker number %d */
-            string = g_strdup_printf ("Stacker %d", index);
+            translation = g_strdup_printf (C_("output-bin", "Stacker %d"), index);
             break;
           case 15:
             /* Translators: Output mailbox number %d */
-            string = g_strdup_printf ("Mailbox %d", index);
+            translation = g_strdup_printf (C_("output-bin", "Mailbox %d"), index);
             break;
           case 16:
             /* Translators: Private mailbox */
-            string = g_strdup ("My Mailbox");
+            translation = g_strdup (C_("output-bin", "My Mailbox"));
             break;
           case 17:
             /* Translators: Output tray number %d */
-            string = g_strdup_printf ("Tray %d", index);
+            translation = g_strdup_printf (C_("output-bin", "Tray %d"), index);
             break;
           default:
             g_assert_not_reached ();
         }
-
-        translation = g_dpgettext2 (GETTEXT_PACKAGE, "output-bin", string);
     }
 
   return translation;
@@ -5206,9 +5203,7 @@ get_ipp_choice_translation (const gchar  *ipp_option_name,
 
               if (index != 0 || endptr != nptr)
                 {
-                  translation = g_strdup (g_dpgettext2 (GETTEXT_PACKAGE,
-                                                        ipp_option_name,
-                                                        get_ipp_choice_translation_string (index, i)));
+                  translation = get_ipp_choice_translation_string (index, i);
                   break;
                 }
             }